C compiler explained